File manager - Edit - /home/autoph/public_html/projects/AutoHub-Kiosk-Final/app/Http/Controllers/AdminController.php
Back
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Customer; use App\Models\SmsResponse; use App\Models\User; use App\Models\Transaction; use Carbon\Carbon; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\Auth; use Illuminate\Support\HtmlString; use DateTime; class AdminController extends Controller { private $cust, $user, $sms, $transaction; public function __construct() { $this->cust = new Customer; $this->user = new User; $this->sms = new SmsResponse; $this->transaction = new Transaction; /** * This is the construct wherein a model is stored inside a variable * The model should be instantiated to be able to be assigned in a variable */ } public function dashboard(){ return view('admin.management.dashboard'); } public function storePolicy(Request $request){ // dd($request->all()); $result = DB::table('policy')->update([ 'content' => $request->disclaimer, 'editor' => Auth::user()->id, ]); return response()->json(['message'=>"success"]); } //update the policy public function fetchPolicy(){ $result = DB::table('policy')->select('content') ->first(); return response()->json(['policy'=>$result]); } //fetch the policy and render on the view file public function getCustomerFrequency(Request $request){ $array_data['type'] = $request->type; $array_data['where'] = ""; $dailyStart = Carbon::now()->startOfDay()->toDateTimeString(); $dailyEnd = Carbon::now()->endOfDay()->toDateTimeString(); $weeklyStart = Carbon::now()->startOfWeek()->toDateString(); $weeklyEnd = Carbon::now()->endOfWeek()->toDateString(); $monthlyStart = Carbon::now()->startOfMonth()->toDateString(); $monthlyEnd = Carbon::now()->endOfMonth()->toDateString(); $quarterlyStart = Carbon::now()->startOfQuarter(); $quarterlyEnd = Carbon::now()->endOfQuarter(); $yearlyStart = Carbon::now()->startOfYear(); $yearlyEnd = Carbon::now()->endOfYear(); $results = array( $this->generateReport('daily', $dailyStart, $dailyEnd, $request->dealer), $this->generateReport('weekly', $weeklyStart, $weeklyEnd, $request->dealer), $this->generateReport('monthly', $monthlyStart, $monthlyEnd, $request->dealer), $this->generateReport('quarterly', $quarterlyStart, $quarterlyEnd, $request->dealer), $this->generateReport('yearly', $yearlyStart, $yearlyEnd, $request->dealer) ); return response()->json($results); } //used for generating charts in the dashboard function generateReport($type, $start, $end, $dealer) { $array_data['where'] = ""; if(!empty($dealer)){ $array_data['where'] .= " AND `links`.`link` LIKE '%".$dealer."%'"; } $array_data['where'] .= " AND DATE(`cst`.`created_at`) BETWEEN '$start' AND '$end' "; $results['count'] = count( $results[$type] = $this->cust->reports($array_data)); return $results; } public function authCheck($view){ if(Auth::user()->access === 0){ return view($view); }elseif(Auth::user()->access === 1) { return view($view); } else { abort(403); } } public function adminDashboard(){ $today_start = Carbon::now()->startOfDay()->setTimezone('Asia/Manila')->toDateTimeString(); $today_end = Carbon::now()->endOfDay()->setTimezone('Asia/Manila')->toDateTimeString(); $week_start = Carbon::now()->startOfWeek()->setTimezone('Asia/Manila')->toDateTimeString(); $week_end = Carbon::now()->endOfWeek()->setTimezone('Asia/Manila')->toDateTimeString(); $month_start = Carbon::now()->startOfMonth()->setTimezone('Asia/Manila')->toDateTimeString(); $month_end = Carbon::now()->endOfMonth()->setTimezone('Asia/Manila')->toDateTimeString(); $year_start = Carbon::now()->startOfYear()->setTimezone('Asia/Manila')->toDateTimeString(); $year_end = Carbon::now()->endOfYear()->setTimezone('Asia/Manila')->toDateTimeString(); $daily = Customer::whereBetween('created_at',[$today_start,$today_end])->get(); $weekly = Customer::whereBetween('created_at',[$week_start,$week_end])->get(); $monthly = Customer::whereBetween('created_at',[$month_start,$month_end])->get(); $yearly = Customer::whereBetween('created_at',[$year_start,$year_end])->get(); return view('admin.dashboard',compact('daily','weekly', 'monthly', 'yearly')); } //dashboard public function reports(){ if(auth()->user()->access == 1){ return view('admin.report'); } else { abort(403, 'Access Denied. If you happen to see this upon registering, Please contact admin to activate your account otherwise manually visit ' . url('/') . '.'); } } //reports public function reportIndex(){ if(Auth::user()->access == 1){ return view('admin.blank'); } else { abort(403, 'Access Denied. Please go back to the home page or manually visit ' . url('/') . '.'); } } public function customerDashboard(){ return view('admin.report.customer'); } public function dealerDashboard(){ return view('admin.report.dealer'); } public function smsDashboard(){ return view('admin.report.sms'); } public function transactionDashboard(){ return view('admin.report.transaction'); } public function orDashboard(){ return view('admin.report.or_compliance'); } // ############### REPORTS QUERY ############# // public function customerReport(Request $request){ $array_data['type'] = $request->type; $array_data['where'] = ""; if(!empty($request->from_date) && !empty($request->to_date)){ $from = Carbon::parse($request->from_date); $to = Carbon::parse($request->to_date); $fromdate = $from->toDateString(); $todate = $to->toDateString(); $array_data['where'] .= " AND DATE(`cst`.`created_at`) BETWEEN '$fromdate' AND '$todate' "; } if(!empty($request->dealer)){ $array_data['where'] .= " AND `links`.`link` LIKE '%".$request->dealer."%'"; } $results = $this->cust->reports($array_data); $response = $this->cust->pdf($results, $request->dealer); $pdf = App::make('dompdf.wrapper'); $pdf->loadView('layouts.reports.customer',$response); switch($array_data['type']){ case('view'): return $pdf->stream(); break; case('pdf'): return $pdf->download("customers-masterfile.pdf"); break; case('csv'): $this->cust->csv($results); break; } } public function dealerReport(Request $request){ $array_data['type'] = $request->type; $array_data['where'] = ""; if(!empty($request->from_date) && !empty($request->to_date)){ $from = Carbon::parse($request->from_date); $to = Carbon::parse($request->to_date); $fromdate = $from->toDateString(); $todate = $to->toDateString(); $array_data['where'] .= " AND DATE(`created_at`) BETWEEN '$fromdate' AND '$todate' "; } $results = $this->user->reports($array_data); $response = $this->user->pdf($results); $pdf = App::make('dompdf.wrapper'); $pdf->loadView('layouts.reports.dealer',$response); switch($array_data['type']){ case('view'): return $pdf->stream(); break; case('pdf'): return $pdf->download("dealers-masterfile.pdf"); break; case('csv'): $this->user->csv($results); break; } } public function smsReport(Request $request){ $array_data['type'] = $request->type; $array_data['where'] = ""; $fromdate = null; $todate = null; if(!empty($request->from_date) && !empty($request->to_date)){ $from = Carbon::parse($request->from_date); $to = Carbon::parse($request->to_date); $fromdate = $from->toDateString(); $todate = $to->toDateString(); $array_data['where'] .= " AND DATE(`sms`.`created_at`) BETWEEN '$fromdate' AND '$todate' "; } if(!empty($request->dealer)){ $array_data['where'] .= " AND `sms`.`token` LIKE '%".$request->dealer."%'"; } $results = $this->sms->reports($array_data); $response = $this->sms->pdf($results, $request->dealer, $fromdate, $todate); $pdf = App::make('dompdf.wrapper'); $pdf->loadView('layouts.reports.sms',$response); switch($array_data['type']){ case('view'): return $pdf->stream(); break; case('pdf'): return $pdf->download("sms-masterfile.pdf"); break; case('csv'): $this->sms->csv($results); break; } } public function transactionReport(Request $request){ // dd($request->all()); $array_data['type'] = $request->type; $array_data['where'] = ""; if(!empty($request->from_date) && !empty($request->to_date)){ $from = Carbon::parse($request->from_date); $to = Carbon::parse($request->to_date); $fromdate = $from->toDateString(); $todate = $to->toDateString(); $array_data['where'] .= " AND DATE(`trs`.`created_at`) BETWEEN '$fromdate' AND '$todate' "; } if(!empty($request->dealer)){ $array_data['where'] .= " AND `cst`.`token` LIKE '%".$request->dealer."%' "; // $array_data['where'] .= " AND `sms`.`token` LIKE '%".$request->dealer."%'"; } $results = $this->transaction->reports($array_data); $response = $this->transaction->pdf($results, $request->dealer); $pdf = App::make('dompdf.wrapper'); $pdf->loadView('layouts.reports.transaction',$response); switch($array_data['type']){ case('view'): return $pdf->stream(); break; case('pdf'): return $pdf->download("transaction-masterfile.pdf"); break; case('csv'): $this->transaction->csv($results,$request->dealer); break; } } public function orReport(Request $request){ $array_data['type'] = $request->type; $array_data['where'] = ""; if(!empty($request->from_date) && !empty($request->to_date)){ $from = Carbon::parse($request->from_date); $to = Carbon::parse($request->to_date); $fromdate = $from->toDateString(); $todate = $to->toDateString(); $array_data['where'] .= " AND DATE(`trs`.`created_at`) BETWEEN '$fromdate' AND '$todate' "; } if(!empty($request->dealer)){ $array_data['where'] .= " AND `cst`.`token` LIKE '%".$request->dealer."%' "; } if(!empty($request->or_status)){ $array_data['where'] .= " AND `links`.`flag` = {$request->or_status} "; $array_data['where'] .= " AND `links`.`verified` = {$request->or_status} "; } else if ($request->or_status == 4){ $array_data['where'] .= " AND(`links`.`flag` = 1 OR `links`.`flag` = 2 OR `links`.`flag` IS NULL) "; $array_data['where'] .= " AND (`links`.`verified` = 1 OR `links`.`verified` = 2 OR `links`.`verified` IS NULL) "; } else { $array_data['where'] .= " AND `links`.`flag` IS NULL "; $array_data['where'] .= " AND `links`.`verified` IS NULL "; } $results = $this->transaction->orReports($array_data); // dd($results); $response = $this->transaction->ORpdf($results, $request->dealer); $pdf = App::make('dompdf.wrapper'); $pdf->loadView('layouts.reports.or_compliance',$response) ->setPaper('a4','landscape'); switch($array_data['type']){ case('view'): return $pdf->stream(); break; case('pdf'): return $pdf->download("OR-Compliance-masterfile.pdf"); break; case('csv'): $this->transaction->ORcsv($results,$request->dealer); break; } } public function customerReportDaily(Request $request){ } public function dealerList(Request $request){ $data = []; $term = $request->search; $response = DB::table('users') ->where(function($query) use ($term){ $query->orWhere('deal_name','like','%'.$term.'%') ->orWhere('deal_code','like','%'.$term.'%'); }) ->get(); foreach($response as $item){ $data['results'][] = [ 'id' => $item->token, 'text' => $item->deal_name . " (" .$item->deal_code. ")" ]; } return response()->json($data); } //fetching of dealer list for select2 function public function userMgmnt(){ if(Auth::user()->access == 1){ return view('admin.management.user_management'); } else { abort(403); } } //user management index public function getSMS(Request $request){ $array_data['search_keyword'] = $request->search['value']; if(empty($request->search_type)){ $array_data['search_type'] = ""; } else { $array_data['search_type'] = json_decode($request->search_type,true)[0]; } $array_data['sort'] = $request->order[0]['dir']; $array_data['order'] = $request->columns[$request->order[0]['column']]['data']; $array_data['offset'] = $request->start; $array_data['limit'] = $request->length; $array_data['offset_limit'] = " LIMIT {$array_data['offset']},{$array_data['limit']}"; $array_data['sort'] = " ORDER BY {$array_data['order']} {$array_data['sort']} "; $array_data['search'] = ""; $array_data['where'] = ""; $data = $request->data; if($data['dealer']){ $array_data['where'] .= " AND `sms`.`token` = '{$data['dealer']}' "; } $results = $this->sms->getSMS($array_data); $result['data'] = array(); foreach($results as $row){ $result['data'][] = array( "id" => $row->id, "customer" => $row->name, "company"=> $row->company, "dealer"=> $row->dealer, "mobile" => $row->mobile, "url" => $row->url, "telco" => $row->telco, "message" => $row->message, "status" => $row->status, "date" => $row->created_at, ); } $result['draw'] = $request->draw; $result['recordsTotal'] = $this->sms->getSMSCount($array_data)[0]->Count ; $result['recordsFiltered'] = $this->sms->getSMSFilteredCount($array_data)[0]->FilteredCount ; return response()->json($result); } //get sms query function for datatable public function getUserAll(Request $request){ $array_data['search_keyword'] = $request->search['value']; if(empty($request->search_type)){ $array_data['search_type'] = ""; } else { $array_data['search_type'] = $request->search_type; ; } $array_data['sort'] = $request->order[0]['dir']; $array_data['order'] = $request->columns[$request->order[0]['column']]['data']; $array_data['offset'] = $request->start; $array_data['limit'] = $request->length; $array_data['offset_limit'] = " LIMIT {$array_data['offset']},{$array_data['limit']}"; $array_data['sort'] = " ORDER BY {$array_data['order']} {$array_data['sort']} "; $array_data['search'] = ""; $array_data['where'] = ""; $data = $request->data; $user_id = auth()->user()->id; $fields = " id, f_name, l_name, email, created_at, access"; $array_data['where'] .= " AND comp_name IS NULL AND deal_name IS NULL AND deal_code IS NULL "; $array_data['where'] .= " AND id <> {$user_id} "; if(!empty($array_data['search_keyword'])){ $array_data['search'] =" AND (f_name LIKE '%{$array_data['search_keyword']}%' OR l_name LIKE '%{$array_data['search_keyword']}%' OR email LIKE '%{$array_data['search_keyword']}%' ) "; } $results = $this->user->getUsers($array_data,$fields); $result = array(); foreach($results as $row){ $result['data'][] = array( 'id' => $row->id, 'name' => $row->f_name . " " . $row->l_name, 'email' => $row->email, 'date' => $row->created_at, 'access' => $row->access ); } $result['draw'] = $request->draw; $result['recordsTotal'] = $this->user->getUsersCount($array_data)[0]->Count; $result['recordsFiltered'] = $this->user->getUsersFilteredCount($array_data)[0]->FilteredCount; return response()->json($result); } //get users query function for datatable public function getDealerAll(Request $request){ $array_data['search_keyword'] = $request->search['value']; if(empty($request->search_type)){ $array_data['search_type'] = ""; } else { // $array_data['search_type'] = json_decode($request->search_type,true)[0]; $array_data['search_type'] = $request->search_type; } $array_data['sort'] = $request->order[0]['dir']; $array_data['order'] = $request->columns[$request->order[0]['column']]['data']; $array_data['offset'] = $request->start; $array_data['limit'] = $request->length; $array_data['offset_limit'] = " LIMIT {$array_data['offset']},{$array_data['limit']}"; $array_data['sort'] = " ORDER BY {$array_data['order']} {$array_data['sort']} "; $array_data['search'] = ""; $array_data['where'] = ""; $fields = " id, deal_name, deal_code, comp_name, created_at, access"; $array_data['where'] .= " AND f_name IS NULL AND l_name IS NULL AND email IS NULL AND status IS NOT NULL "; if(!empty($array_data['search_keyword'])){ $array_data['search'] =" AND (deal_name LIKE '%{$array_data['search_keyword']}%' OR deal_code LIKE '%{$array_data['search_keyword']}%' OR comp_name LIKE '%{$array_data['search_keyword']}%' ) "; } $results = $this->user->getUsers($array_data,$fields); foreach($results as $row){ $result['data'][] = array( 'id' => $row->id, 'comp_name' => $row->comp_name, 'deal_name' => $row->deal_name, 'deal_code' => $row->deal_code, 'date' => $row->created_at, 'access' => $row->access ); } $result['draw'] = $request->draw; $result['recordsTotal'] = $this->user->getDealersCount($array_data)[0]->Count; $result['recordsFiltered'] = $this->user->getDealersFilteredCount($array_data)[0]->FilteredCount; return response()->json($result); } //get dealer query function for datatable public function getDealer($id){ $user = User::findOrFail($id); return view('admin.management.edit_dealer')->with(['user'=>$user]); } //get the dealer details public function updateDealer(Request $request, $id){ $dealer = User::findOrFail($id); if(empty($dealer)){ return response()->json(["message"=>"Invalid Action"],403); } $request->validate([ 'comp_name' => 'required', 'deal_name' => 'required', 'deal_code' => 'required', 'password' => 'confirmed', ],[ 'comp_name.required' => 'Company is Required', 'deal_name.required' => 'Dealer is Required', 'deal_code.required' => 'Dealer Code is Required' ]); if($request->official_receipt){ $file['image'] = uniqid().$request->deal_code.'.'.$request->official_receipt->extension(); $request->official_receipt->move('files/img/', $file['image']); $path = 'files/img/'.$file['image']; $dealer->receipt = $path; } if($request->official_logo){ $file['image'] = uniqid().$request->deal_code.'_logo.'.$request->official_logo->extension(); $request->official_logo->move('files/img/logo/', $file['image']); $path2 = 'files/img/logo/'.$file['image']; $dealer->logo = $path2; } $dealer->comp_name = $request->comp_name; $dealer->deal_name = $request->deal_name; $dealer->deal_code = $request->deal_code; $dealer->user_name = $request->deal_code; // if($request->official_receipt || $request->official_logo){ // } if($request->password){ $dealer->password = bcrypt($request->password); } $dealer->save(); return response()->json(['success'=>'success'],200); } //update the dealer details public function deleteDealer(Request $request, $id){ $dealer = User::findOrFail($id); if(empty($dealer)){ return response()->json(["message"=>"Invalid Action"],403); } $dealer->status = null; $dealer->save(); return response()->json(['message'=>"Success"]); } //delete/deactivate the dealer public function getTransactionsAll(Request $request){ $array_data['search_keyword'] = $request->search['value']; if(empty($request->search_type)){ $array_data['search_type'] = ""; } else { $array_data['search_type'] = json_decode($request->search_type,true)[0]; } $array_data['sort'] = $request->order[0]['dir']; $array_data['order'] = $request->columns[$request->order[0]['column']]['data']; $array_data['offset'] = $request->start; $array_data['limit'] = $request->length; $array_data['offset_limit'] = " LIMIT {$array_data['offset']},{$array_data['limit']}"; $array_data['sort'] = " ORDER BY {$array_data['order']} {$array_data['sort']} "; $array_data['search'] = ""; $array_data['where'] = ""; $data = $request->data; if($data['dealer']){ $array_data['where'] .= " AND `cst`.`token` = '{$data['dealer']}' "; } $results = $this->transaction->getTransaction($array_data); $result['data'] = array(); foreach($results as $row){ $result['data'][] = array( "id" => $row->id, "customer" => $row->name, "paid_to" => ($row->cashier_payment == 1) ? "Cashier" : (($row->sc_payment == 1) ? "SC" : " "), "date" => $row->created_at ); } $result['draw'] = $request->draw; $result['recordsTotal'] = $this->transaction->getTransactionCount($array_data)[0]->Count; $result['recordsFiltered'] = $this->transaction->getTransactionFilteredCount($array_data)[0]->FilteredCount; return response()->json($result); } //get the transactions query function public function getTransactionDetails($id){ $result = DB::table('transactions as trs') ->join('customers as cst', 'trs.transactions_custId', "=", 'cst.id') ->join('users as comp', 'cst.token', "=", 'comp.token') ->select(DB::raw('CONCAT(cst.fname, " ", cst.lname) as customer'), 'cst.mobile','cst.email','cst.created_at as visit_date', 'trs.orNo','trs.amount',DB::raw('CONCAT(trs.assisting_sc_fName, " ", trs.assisting_sc_lName) as SC'), 'trs.cashier_payment','trs.sc_payment','trs.created_at as transaction_date', 'comp.comp_name') ->where('trs.id',"=",$id) ->get() ; return response()->json($result); } //get specific transaction query function public function updateUserRole(Request $request, $id){ $user = User::findOrFail($id); $user->access = $request->type; $user->save(); return response()->json(['message'=>"success"],200); } //update the user role query function public function update(Request $request){ $user = User::findOrFail(auth()->user()->id); if(empty($request->password)){ $user->f_name = $request->name; $user->l_name = $request->surname; $user->email = $request->email; $user->save(); return response()->json(['message'=>"updated without password"]); } else { $validate = $request->validate([ 'password' => 'confirmed', ]); $user->f_name = $request->name; $user->l_name = $request->surname; $user->email = $request->email; $user->password = bcrypt($request->password); $user->save(); return response()->json(['message'=>"updated with password"]); } } //update the user profile query function }
| ver. 1.4 |
.
| PHP 8.1.32 | Generation time: 0 |
proxy
|
phpinfo
|
Settings